/*
nodejs的事件轮询机制：
    -js是单线程的，我们想要做到非阻塞，那么当我们遇到异步代码的时候，会把异步代码交给libuv的线程池进行管理，主线程依然继续向下执行同步代码
    -libuv会开启多个线程去管理不同的异步代码，当异步代码需要被执行的时候，会把回调函数依次放入到libuv提供的对应的轮询队列中去（因为node中异步种类繁多，libuv提供了多种回调函数）
    -回调函数的顺序和种类
        1.timers阶段：
         处理定时器回调函数
        2.pending callbacks
         这个阶段用来处理系统操作的回调函数
        3.idle prepare阶段
         此阶段是仅供nodejs内部操作调用
        4.poll阶段
         这个阶段主要用来处理加IO操作，网络请求等异步操作
         当进入poll阶段之后，如果poll阶段为空，则除非timers阶段和check阶段没有回调等待，否则就会一直等到poll阶段有新的回调执行
        5.check阶段：
         这个阶段用来处理settimediate的回调函数
        6.close callbacks阶段
         这个阶段用来处理close事件
*/ 